package cn.bearspark.api.service.main;

import cn.bearspark.api.vo.main.category.AddCategoryVO;
import cn.bearspark.api.vo.main.category.CategorySimpleVO;
import cn.bearspark.api.vo.main.category.CategoryVO;
import cn.bearspark.api.vo.main.category.ModifyCategoryVO;

import java.util.List;

/**
 * 专栏分类服务的接口
 *
 * @author f
 */
public interface CategoryService {

    /**
     * 添加专栏分类
     *
     * @param addCategoryVO 添加专栏分类的请求对象
     */
    void add(AddCategoryVO addCategoryVO);

    /**
     * 获取专栏分类信息
     *
     * @param categoryId 待获取信息的专栏分类 id
     * @return 专栏分类信息
     */
    CategoryVO get(Long categoryId);

    /**
     * 修改专栏分类
     *
     * @param modifyCategoryVO 修改专栏分类的请求对象
     */
    void modify(ModifyCategoryVO modifyCategoryVO);

    /**
     * 删除专栏分类
     *
     * @param categoryId 待删除的专栏分类 id
     */
    void delete(Long categoryId);

    /**
     * 列举专栏分类简要信息
     * <p>
     * 按照分类专栏数量进行排序
     *
     * @param listedUserId 待列举专栏分类的用户 id
     * @return 专栏分类简要信息的集合
     */
    List<CategorySimpleVO> list(Long listedUserId);
}
